package com.pureut.system.service;

import com.pureut.system.domain.SysTheAlarm;
import com.pureut.system.domain.dto.MaterialAwmateriaDto;
import com.pureut.system.domain.MaterialAwmateria;
import com.pureut.system.domain.dto.ProjectRecursionDto;
import com.pureut.system.domain.vo.MaterialAwmateriaVo;
import com.pureut.system.export.MaterialAwmateriaExport;

import java.util.List;

/**
 * @Description
 * @Param
 * @Date
 * @Author hl
 **/
public interface IMaterialAwmateriaService {
    /**
     * 查询原料信息
     */
    List<MaterialAwmateriaDto> selectAwmateriaList(MaterialAwmateriaVo materialAwmateriaVo);

    /**
     * 新增原料信息
     */
    int insertAwmateria(MaterialAwmateriaVo materialAwmateria) throws Exception;

    /**
     * 删除原料信息
     */
    int deleteAwmateriaById(String materialId) throws Exception;

    /**
     * 查询单个原料信息
     */
    MaterialAwmateriaDto selectAwmateriaById(long materialId);

    /**
     * 修改原料信息
     */
    int updateMaterialAwmateriaEdit(MaterialAwmateriaVo materialAwmateria) throws Exception;

    /**
     * 冻结/解冻
     */
    int updateAwmateriaEditFreeze(MaterialAwmateria materialAwmateria);

    /**
     * 树结构
     */
    List<ProjectRecursionDto>  selectChildrenListThe();

    /**
     * 根据物料编码查询详情
     * @param materialCode
     * @return
     */
    MaterialAwmateriaDto selectAllByAlarmMaterialCode(String materialCode);

    /**
     * 根据物料编码获取详情（委外订单详情列表调用 fegin）
     */
    MaterialAwmateriaDto getAwmateriaViewByMaterialCode(String materialCode);

    /**
     * 导入
     * @param coCustomer
     * @return
     */
    String importMouldData(List<MaterialAwmateriaExport> coCustomer);

    /**
     * 获取告警信息
     * @param materialCode
     * @return
     */
    SysTheAlarm getAlarm(String materialCode,String type);

    /**
     * 树结构
     */
    List<ProjectRecursionDto>  selectChildrenListThe2();
}
